Stops any executing actions and put the system in a standby mode.
This message has no fields.
Identity and description of a plan’s general parameters, associated with plan loading (i.e. load plan command in PlanCommand).
A plan specification is defined by a plan identifier, a set of maneuver specifications and a start maneuver from that set.
See the Plan Maneuver message for details on maneuver specification.
Name | Abbreviation | Unit | Type | Description | Range |
---|---|---|---|---|---|
Plan ID | plan_id | - | plaintext | The plan’s identifier. | Same as field type |
Plan Description | description | - | plaintext | Verbose text description of plan. | Same as field type |
Namespace | vnamespace | - | plaintext | Namespace for plan variables. | Same as field type |
Plan Variables | variables | - | message-list (Plan Variable) | Plan variables. | Same as field type |
Starting maneuver | start_man_id | - | plaintext | Indicates the id of the starting maneuver for this plan. | Same as field type |
Maneuvers | maneuvers | - | message-list (Plan Maneuver) | List of maneuver specifications. | Same as field type |
Transitions | transitions | - | message-list (Plan Transition) | List of maneuver specifications. | Same as field type |
Start Actions | start_actions | - | message-list | Contains an optionally defined ‘MessageList’ for actions fired on plan activation. | Same as field type |
End Actions | end_actions | - | message-list | Contains an optionally defined ‘MessageList’ for actions fired on plan termination. | Same as field type |
Named plan maneuver.
Name | Abbreviation | Unit | Type | Description | Range |
---|---|---|---|---|---|
Maneuver ID | maneuver_id | - | plaintext | The maneuver ID. | Same as field type |
Maneuver Specification | data | - | message (Message-Group Maneuver) | The maneuver specification. | Same as field type |
Start Actions | start_actions | - | message-list | Contains an optionally defined ‘MessageList’ for actions fired on plan activation. | Same as field type |
End Actions | end_actions | - | message-list | Contains an optionally defined ‘MessageList’ for actions fired on plan termination. | Same as field type |
Describes a plan transition within a plan specification. A transition states the vehicle conditions that must be met to signal the transition, the maneuver that should be started as a result, and an optional set of actions triggered by the transition.
Name | Abbreviation | Unit | Type | Description | Range |
---|---|---|---|---|---|
Source | source_man | - | plaintext | Comma separated list of maneuver IDs, or the special value ‘.’ to identify a global plan transition. | Same as field type |
Destination Maneuver Name | dest_man | - | plaintext | Target maneuver name. If it equals the special value ‘_done_’ then plan should terminate with a success status. If it equals the special value ‘_error_’ then the plan should terminate with an error status. | Same as field type |
Transition conditions | conditions | - | plaintext | Comma separated list of conditions for transition. Each condition identifier corresponds to a known predicate which is interpreted and tested internally by the vehicle. | Same as field type |
Transition actions | actions | - | message-list | Messages processed when the transition is triggered. | Same as field type |
No description
Name | Abbreviation | Unit | Type | Description | Range |
---|---|---|---|---|---|
Command | command | Enumerated (Enum Command) | uint8_t | Same as field type | |
Plan Specification | plan | - | message (Plan Specification) | Same as field type |
No description
Value | Name | Abbreviation | Description |
---|---|---|---|
0 | Enable | ENABLE | - |
1 | Disable | DISABLE | - |
2 | Start | START | - |
3 | Stop | STOP | - |
4 | Query | QUERY | - |
5 | Set Plan | SET_PLAN | - |
No description
Name | Abbreviation | Unit | Type | Description | Range |
---|---|---|---|---|---|
State | state | Enumerated (Enum State) | uint8_t | Same as field type | |
Plan Id | plan_id | - | plaintext | Same as field type | |
Communications Level | comm_level | % | uint8_t | max=100 |
No description
Value | Name | Abbreviation | Description |
---|---|---|---|
0 | Not Configured | NOT_CONFIGURED | - |
1 | Disabled | DISABLED | - |
2 | Enabled | ENABLED | - |
3 | Armed | ARMED | - |
4 | Active | ACTIVE | - |
5 | Stopping | STOPPING | - |
Request/reply to plan database.
Name | Abbreviation | Unit | Type | Description | Range |
---|---|---|---|---|---|
Type | type | Enumerated (Enum Type) | uint8_t | Indicates if the message is a request, or a reply to a previous request. | Same as field type |
Operation | op | Enumerated (Enum Operation) | uint8_t | Indicates the operation affecting the DB. The operation may relate to a single plan or the entire plan DB. For each request, a plan DB may reply with any number of ‘in progress’ replies followed by a success or a failure reply. The ‘op’, ‘request_id’ and ‘plan_id’ fields of a request will be echoed in one or more responses to that request. The operation at stake also determines a certain type of the ‘arg’ field, and whether or not the ‘plan_id’ field needs to be set. |
Same as field type |
Request ID | request_id | - | uint16_t | Request ID. This may be used by interfacing modules, e.g. using sequence counters, to annotate requests and appropriately identify replies | Same as field type |
Plan ID | plan_id | - | plaintext | Plan identifier for the operation, if one is required. | Same as field type |
Argument | arg | - | message | Request or reply argument. | Same as field type |
Complementary Information | info | - | plaintext | Human-readable complementary information. For example this may be used to detail reasons for failure, or to report in-progress information. | Same as field type |
Indicates if the message is a request, or a reply to a previous request.
Value | Name | Abbreviation | Description |
---|---|---|---|
0 | Request | REQUEST | - |
1 | Reply – Success | SUCCESS | - |
2 | Reply – Failure | FAILURE | - |
3 | Reply – In Progress | IN_PROGRESS | - |
Indicates the operation affecting the DB.
The operation may relate to a single plan or the entire plan DB. For each request, a plan DB may reply with any number of ‘in progress’ replies followed by a success or a failure reply.
The ‘op’, ‘request_id’ and ‘plan_id’ fields of a request will be echoed in one or more responses to that request. The operation at stake also determines a certain type of the ‘arg’ field, and whether or not the ‘plan_id’ field needs to be set.
Value | Name | Abbreviation | Description |
---|---|---|---|
0 | Set Plan | SET | Set a plan in the DB. The ‘plan_id’ field identifies the plan, and a pre-existing plan with the same identifier, if any will be overwritten. For requests, the ‘arg’ field must contain a ‘PlanSpecification’ message. |
1 | Delete Plan | DEL | Delete a plan from the DB. The ‘plan_id’ field identifies the plan to delete. |
2 | Get Plan | GET | Get a plan stored in the DB.The ‘plan_id’ field identifies the plan. Successful replies will yield a ‘PlanSpecification’ message in the ‘arg’ field. |
3 | Get Plan Info | GET_INFO | Get DB state for a stored plan. The ‘plan_id’ field identifies the plan. Successful replies will yield a ‘PlanDBInformation’ message in the ‘arg’ field. |
4 | Clear Database | CLEAR | Clear the entire DB. |
5 | Get Database State (Simple) | GET_STATE | Get state of the entire DB. Successful replies will yield a ‘PlanDBState’ message in the ‘arg’ field but without individual plan information (in the ‘plans_info’ field of ‘PlanDBState’). |
6 | Get Database State (Detailed) | GET_DSTATE | Get detailed state of the entire DB. Successful replies will yield a ‘PlanDBState’ message in the ‘arg’ field with individual plan information (in the ‘plans_info’ field of ‘PlanDBState’). |
7 | Boot Notification | BOOT | PlanDB replies of this type are sent automatically during bootstrap. |
Characterizes the state of the entire plan database.
Name | Abbreviation | Unit | Type | Description | Range |
---|---|---|---|---|---|
Plan – Count | plan_count | - | uint16_t | Number of stored plans. | Same as field type |
Plan – Size of all plans | plan_size | - | uint32_t | Size of all plans.The value equals the sum of the IMC payload sizes for ‘PlanSpecification’ stored in the DB. | Same as field type |
Last Change – Time | change_time | s | fp64_t | Time of last change (Epoch time). | Same as field type |
Last Change – Source Address | change_sid | - | uint16_t | IMC address for source of last DB change. | Same as field type |
Last Change – Source Name | change_sname | - | plaintext | IMC node name for source of last DB change. | Same as field type |
MD5 | md5 | - | rawdata | MD5 database verification code. The MD5 hash sum is computed over the stream formed by the MD5 of all plans, ordered by plan id, in compliance with RFC 1321. | Same as field type |
Plan info | plans_info | - | message-list (Plan DB Information) | Individual information for plans. | Same as field type |
No description
Name | Abbreviation | Unit | Type | Description | Range |
---|---|---|---|---|---|
Plan ID | plan_id | - | plaintext | Plan identifier. | Same as field type |
Plan Size | plan_size | - | uint16_t | Plan size. The value equals the IMC message payload of the associated ‘PlanSpecification’ message in bytes. | Same as field type |
Last Changed – Time | change_time | - | fp64_t | Time of last change to the plan (Epoch time). | Same as field type |
Last Change – Source Address | change_sid | - | uint16_t | IMC address for source of last change to the plan. | Same as field type |
Last Change – Source Name | change_sname | - | plaintext | IMC node name for source of last change to the plan. | Same as field type |
MD5 | md5 | - | rawdata | MD5 plan verification code. The value is calculated over the message payload of the ‘PlanSpecification’, in compliance with RFC 1321. | Same as field type |
Plan control request/reply.
Name | Abbreviation | Unit | Type | Description | Range |
---|---|---|---|---|---|
Type | type | Enumerated (Enum Type) | uint8_t | Indicates if the message is a request or a reply to a previous request. The op, request_id and plan_id fields of a request will be echoed in one or more responses to that request. | Same as field type |
Operation | op | Enumerated (PlanControl-enum-op) | uint8_t | Plan control operation. | Same as field type |
Request ID | request_id | - | uint16_t | Request ID. This may be used by interfacing modules e.g. using sequence counters. to annotate requests and appropriately identify replies. | Same as field type |
Plan Identifier | plan_id | - | plaintext | The identifier for the plan to be stopped / started / loaded / retrieved according to the command requested (op field). | Same as field type |
Flags | flags | Bitfield (Bitfield Flags) | uint16_t | Same as field type | |
Request/Reply Argument | arg | - | message | Complementary message argument for requests/replies. | Same as field type |
Complementary Info | info | - | plaintext | Complementary human-readable information. This is used in association to replies. | Same as field type |
Indicates if the message is a request or a reply to a previous request. The op, request_id and plan_id fields of a request will be echoed in one or more responses to that request.
Value | Name | Abbreviation | Description |
---|---|---|---|
0 | Request | REQUEST | - |
1 | Reply – Success | SUCCESS | - |
2 | Reply – Failure | FAILURE | - |
3 | Reply – In Progress | IN_PROGRESS | - |
Plan control operation.
Value | Name | Abbreviation | Description |
---|---|---|---|
0 | Start Plan | START | Start plan identified by plan_id field. The command will try to load the corresponding plan if none is loaded, and in that case will follow the same discipline as the LOAD command. If the message in arg is a Message-Group Maneuver, a single-maneuver plan will be generated and executed. This will override any current plan being executed. |
1 | Stop Plan | STOP | Stop current plan being executed if any. |
2 | Load Plan | LOAD | Load Plan. If a Plan Specification is given with the request in the data field, then that plan is used and stored in the Plan DB. Otherwise, the plan is loaded from the Plan DB. |
3 | Get Plan | GET | Get loaded plan. For a successful reply, the data field will contain the Plan Specification message that corresponds to the currently loaded plan. |
No description
Value | Name | Abbreviation | Description |
---|---|---|---|
0x0001 | Calibrate Vehicle | CALIBRATE | Perform vehicle calibration. |
0x0002 | Ignore Errors | IGNORE_ERRORS | Execute current plan while ignoring some errors that might be active. |
State of plan control.
Name | Abbreviation | Unit | Type | Description | Range |
---|---|---|---|---|---|
State | state | Enumerated (Enum State) | uint8_t | Describes overall state. | Same as field type |
Plan – ID | plan_id | - | plaintext | Identifier of plan currently loaded. | Same as field type |
Plan – ETA | plan_eta | s | int32_t | Current plan estimated time to completion. The value will be -1 if the time is unknown or undefined. | Same as field type |
Plan – Progress | plan_progress | % | fp32_t | Current plan estimated progress in percent. The value will be negative if unknown or undefined. | Same as field type |
Maneuver – ID | man_id | - | plaintext | Current node ID, when executing a plan. | Same as field type |
Maneuver – Type | man_type | - | uint16_t | Type of maneuver being executed (IMC serialization id), when executing a plan. | Same as field type |
Maneuver – ETA | man_eta | s | int32_t | Current node estimated time to completion, when executing a plan. The value will be -1 if the time is unknown or undefined. | Same as field type |
Last Plan Outcome | last_outcome | Enumerated (Enum Last Plan Outcome) | uint8_t | Outcome of the last executed plan. | Same as field type |
Describes overall state.
Value | Name | Abbreviation | Description |
---|---|---|---|
0 | Blocked | BLOCKED | Plan execution is blocked e.g., due to a vehicle error, or if no plan is loaded. |
1 | Ready | READY | Ready to start plan execution. |
2 | Initializing | INITIALIZING | Initializing plan for execution. |
3 | Executing | EXECUTING | Executing plan. |
Outcome of the last executed plan.
Value | Name | Abbreviation | Description |
---|---|---|---|
0 | None | NONE | Unknown or not filled. |
1 | Success | SUCCESS | Last plan execution was successful. |
2 | Failure | FAILURE | Last plan execution was a failure. |
A plan variable.
Name | Abbreviation | Unit | Type | Description | Range |
---|---|---|---|---|---|
Name | name | - | plaintext | Same as field type | |
Value | value | - | plaintext | Same as field type | |
Type | type | Enumerated (Enum Type) | uint8_t | Same as field type | |
Access Type | access | Enumerated (Enum Access Type) | uint8_t | Same as field type |
No description
Value | Name | Abbreviation | Description |
---|---|---|---|
0 | Boolean | BOOLEAN | - |
1 | Number | NUMBER | - |
2 | Text | TEXT | - |
3 | Message | MESSAGE | - |
No description
Value | Name | Abbreviation | Description |
---|---|---|---|
0 | Input | INPUT | - |
1 | Output | OUTPUT | - |
2 | Local | LOCAL | - |
This message is used to order the generation of plans based on id and set of parameters.
Name | Abbreviation | Unit | Type | Description | Range |
---|---|---|---|---|---|
Command | cmd | Enumerated (Enum Command) | uint8_t | Same as field type | |
Operation | op | Enumerated (Enum Operation) | uint8_t | Same as field type | |
Plan Identifier | plan_id | - | plaintext | The name of the plan to be generated. | Same as field type |
Parameters | params | TupleList | plaintext | An optional list of parameters to be used by the plan generation module. | Same as field type |
No description
Value | Name | Abbreviation | Description |
---|---|---|---|
0 | Generate | GENERATE | Generate the plan and store it in the PlanDB. |
1 | Execute | EXECUTE | Generate (storing it in the PlanDB) and execute it immediately. |
No description
Value | Name | Abbreviation | Description |
---|---|---|---|
0 | Request | REQUEST | Request the execution of this command. |
1 | Error | ERROR | Some error has occurred while executing the command. The error can be found in the ‘params’ tuplelist (under the key ‘error’). |
2 | Success | SUCCESS | The requested command was executed successfully. |
This message defines the formation leader state.
LeaderState is a complete description of the leader state in terms of parameters such as position, orientation and velocities at a particular moment in time.
The system position is given by a North-East-Down (NED) local tangent plane displacement (x, y, z) relative to an absolute WGS-84 coordinate (latitude, longitude, height above ellipsoid).
The symbols for position and attitude as well as linear and angular velocities were chosen according to SNAME’s notation (1950). The body-fixed reference frame and Euler angles are depicted next:
align: | center |
---|
Euler angles
Name | Abbreviation | Unit | Type | Description | Range |
---|---|---|---|---|---|
Group Name | group_name | - | plaintext | Name for the formation group. | Same as field type |
Action on the leader state | op | Enumerated (Enum Action on the leader state) | uint8_t | Action on the formation leader state variables | Same as field type |
Latitude (WGS-84) | lat | rad | fp64_t | WGS-84 Latitude. | min=-1.5707963267948966, max=1.5707963267948966 |
Longitude (WGS-84) | lon | rad | fp64_t | WGS-84 Longitude. | min=-3.141592653589793, max=3.141592653589793 |
Height (WGS-84) | height | m | fp32_t | Height above the WGS-84 ellipsoid. | Same as field type |
Offset north | x | m | fp32_t | The North offset of the North/East/Down field with respect to LLH. | Same as field type |
Offset east | y | m | fp32_t | The East offset of the North/East/Down field with respect to LLH. | Same as field type |
Offset down | z | m | fp32_t | The Down offset of the North/East/Down field with respect to LLH. | Same as field type |
Rotation over x axis | phi | rad | fp32_t | The phi Euler angle from the vehicle’s attitude. | min=-3.141592653589793, max=3.141592653589793 |
Rotation over y axis | theta | rad | fp32_t | The theta Euler angle from the vehicle’s attitude. | min=-1.57079632679490, max=1.57079632679490 |
Rotation over z axis | psi | rad | fp32_t | The psi Euler angle from the vehicle’s attitude. | min=-3.141592653589793, max=3.141592653589793 |
Ground Velocity X (North) | vx | m/s | fp32_t | Ground Velocity xx axis velocity component. | Same as field type |
Ground Velocity Y (East) | vy | m/s | fp32_t | Ground Velocity yy axis velocity component. | Same as field type |
Ground Velocity Z (Down) | vz | m/s | fp32_t | Ground Velocity zz axis velocity component. | Same as field type |
Angular Velocity in x | p | rad/s | fp32_t | The angular velocity over body-fixed xx axis (roll). | min=-3.141592653589793, max=3.141592653589793 |
Angular Velocity in y | q | rad/s | fp32_t | The angular velocity over body-fixed yy axis (pitch). | min=-3.141592653589793, max=3.141592653589793 |
Angular Velocity in z | r | rad/s | fp32_t | The angular velocity over body-fixed zz axis (yaw). | min=-3.141592653589793, max=3.141592653589793 |
Stream Velocity X (North) | svx | m/s | fp32_t | Stream Velocity xx axis velocity component. | Same as field type |
Stream Velocity Y (East) | svy | m/s | fp32_t | Stream Velocity yy axis velocity component. | Same as field type |
Stream Velocity Z (Down) | svz | m/s | fp32_t | Stream Velocity zz axis velocity component. | Same as field type |
Action on the formation leader state variables
Value | Name | Abbreviation | Description |
---|---|---|---|
0 | Request | REQUEST | - |
1 | Set | SET | - |
2 | Report | REPORT | - |
No description
Name | Abbreviation | Unit | Type | Description | Range |
---|---|---|---|---|---|
Plan Identifier | plan_id | - | plaintext | The name of the plan to be generated. | Same as field type |
Type | type | Enumerated (Enum Type) | uint8_t | Type of plan statistics, if they are launched before, during or after the plan execution. | Same as field type |
Properties | properties | Bitfield (Bitfield Properties) | uint8_t | Same as field type | |
Durations | durations | TupleList | plaintext | Maneuver and plan duration statistics in seconds, for example: Total=1000,Goto1=20,Rows=980 | Same as field type |
Distances | distances | TupleList | plaintext | Distances travelled in meters in each maneuver and/or total: Total=2000,Rows=1800,Elevator=200 | Same as field type |
Actions | actions | TupleList | plaintext | List of components active by plan actions during the plan and time active in seconds: Sidescan=100,Camera Module=150 | Same as field type |
Fuel | fuel | TupleList | plaintext | Amount of fuel spent, in battery percentage, by different parcels (if applicable): Total=35,Hotel=5,Payload=10,Motion=20,IMU=0 | Same as field type |
Type of plan statistics, if they are launched before, during or after the plan execution.
Value | Name | Abbreviation | Description |
---|---|---|---|
0 | Before Plan | PREPLAN | - |
1 | During Plan | INPLAN | - |
2 | After Plan | POSTPLAN | - |
No description
Value | Name | Abbreviation | Description |
---|---|---|---|
0x00 | Basic Plan | BASIC | Basic plan, meaning it is Linear, Finite and Noncyclic. |
0x01 | Nonlinear | NONLINEAR | Plan is nonlinear. |
0x02 | Infinite | INFINITE | Plan is infinite in duration. |
0x04 | Cyclical | CYCLICAL | Plan is cyclical. |
0x07 | All | ALL | All properties checked. |
No description
Name | Abbreviation | Unit | Type | Description | Range |
---|---|---|---|---|---|
Latitude | lat | ° | fp32_t | Same as field type | |
Longitude | lon | ° | fp32_t | Same as field type | |
Time Of Arrival | eta | - | uint32_t | Same as field type | |
Duration | duration | s | uint16_t | Same as field type |
No description
Name | Abbreviation | Unit | Type | Description | Range |
---|---|---|---|---|---|
Plan Identifier | plan_id | - | uint16_t | Same as field type | |
Waypoints | waypoints | - | message-list (SOI Waypoint) | Same as field type |
No description
Name | Abbreviation | Unit | Type | Description | Range |
---|---|---|---|---|---|
Type | type | Enumerated (Enum Type) | uint8_t | Same as field type | |
Command | command | Enumerated (Enum Command) | uint8_t | Same as field type | |
Settings | settings | TupleList | plaintext | Same as field type | |
Plan | plan | - | message (SOI Plan) | Same as field type | |
Extra Information | info | - | plaintext | Same as field type |
No description
Value | Name | Abbreviation | Description |
---|---|---|---|
1 | Request | REQUEST | - |
2 | Success | SUCCESS | - |
3 | Error | ERROR | - |
No description
Value | Name | Abbreviation | Description |
---|---|---|---|
1 | Execute Plan | EXEC | - |
2 | Stop Execution | STOP | - |
3 | Set Parameters | SET_PARAMS | - |
4 | Get Parameters | GET_PARAMS | - |
5 | Get Plan | GET_PLAN | - |
6 | Resume Execution | RESUME | - |
No description
Name | Abbreviation | Unit | Type | Description | Range |
---|---|---|---|---|---|
State | state | Enumerated (Enum State) | uint8_t | Same as field type | |
Plan Identifier | plan_id | - | uint16_t | Same as field type | |
Waypoint Identifier | wpt_id | - | uint8_t | Same as field type | |
Settings Checksum | settings_chk | - | uint16_t | Same as field type |
No description
Value | Name | Abbreviation | Description |
---|---|---|---|
1 | Executing | EXEC | - |
2 | Idle | IDLE | - |
3 | Inactive | INACTIVE | - |
This message signals that an Abort message was received and acted upon.
This message has no fields.
Use to validate plans
Name | Abbreviation | Unit | Type | Description | Range |
---|---|---|---|---|---|
Request Type | type | Enumerated (Enum Request Type) | uint8_t | Type of request. | Same as field type |
Plan DB | plan | - | message (Plan DB) | An inline plan specification to be used both in requests and replies. | Same as field type |
Type of request.
Value | Name | Abbreviation | Description |
---|---|---|---|
0 | Request | REQ | - |
1 | Reply – Valid | VALID | - |
2 | Reply – Invalid | INVALID | - |